package com.kh.rationaldrugreview.entity;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Map;

/**
 * 实体关系注册表实体类
 * 记录实体间的关系，避免重复创建相同的关系
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ToString
public class EntityRelationship {
    
    /**
     * 关系ID（主键）
     */
    private Long relationshipId;
    
    /**
     * 源实体ID
     */
    private Long sourceEntityId;
    
    /**
     * 目标实体ID
     */
    private Long targetEntityId;
    
    /**
     * 关系类型
     */
    private String relationshipType;
    
    /**
     * Neo4j中的关系ID
     */
    private String neo4jRelationshipId;
    
    /**
     * 关系属性(JSON格式)
     */
    private Map<String, Object> properties;
    
    /**
     * 关系强度
     */
    private Integer strength;
    
    /**
     * 置信度
     */
    private BigDecimal confidenceScore;
    
    /**
     * 来源
     */
    private String source;
    
    /**
     * 是否已验证
     */
    private Boolean isValidated;
    
    /**
     * 是否有效
     */
    private Boolean isActive;
    
    /**
     * 创建时间
     */
    private LocalDateTime createdAt;
    
    /**
     * 更新时间
     */
    private LocalDateTime updatedAt;
}